home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / eggdrop / eggdrop11.lha / scripts / toolbox.tcl < prev    next >
Text File  |  1997-01-15  |  3KB  |  136 lines

  1. # toolbox.tcl -- useful procedures for use in tcl
  2. # by cmwagner@sodre.net -- any other suggestions email me
  3.  
  4. # so other scripts can bitch if toolbox.tcl is not loaded
  5. set toolbox_loaded 1
  6.  
  7. # so other scripts can bitch if toolbox.tcl is obsolete
  8. set toolbox_revision 1004
  9.  
  10. # string tolower
  11. proc strlwr {string} {
  12.    return [string tolower $string]
  13. }
  14.  
  15. # string toupper
  16. proc strupr {string} {
  17.    return [string toupper $string]
  18. }
  19.  
  20. # string compare
  21. proc strcmp {string1 string2} {
  22.    return [string compare $string1 $string2]
  23. }
  24.  
  25. # string compare (insensitive to case)
  26. proc stricmp {string1 string2} {
  27.    return [string compare [strlwr $string1] [strlwr $string2]]
  28. }
  29.  
  30. # string length
  31. proc strlen {string} {
  32.    return [string length $string]
  33. }
  34.  
  35. # string index
  36. proc stridx {string index} {
  37.    return [string index $string $index]
  38. }
  39.  
  40. # is a certain command a valid tcl command
  41. proc iscommand {command} {
  42.    if {[lsearch -exact [strlwr [info commands]] [strlwr $command]] != -1} {
  43.       return 1
  44.    }
  45.  
  46.    return 0
  47. }
  48.  
  49. # check to see if a timer for a certain procedure exists
  50. proc timerexists {timer_proc} {
  51.    foreach j [timers] {
  52.       if {[string compare [lindex $j 1] $timer_proc] == 0} {
  53.          return [lindex $j 2]
  54.       }
  55.    }
  56. }
  57.  
  58. # check to see if a utimer for a certain procedure exists
  59. # cmwagner@soder.net
  60. if {[iscommand utimers]} {
  61.    proc utimerexists {timer_proc} {
  62.       foreach j [utimers] {
  63.          if {[string compare [lindex $j 1] $timer_proc] == 0} {
  64.             return [lindex $j 2]
  65.          }
  66.       }
  67.    }
  68. }
  69.  
  70. # is a bot in the chain
  71. proc inchain {bot} {
  72.    if {[lsearch -exact [strlwr [bots]] [strlwr $bot]] != -1} {
  73.       return 1
  74.    }
  75.  
  76.    return 0
  77. }
  78.  
  79. # generate a string with random characters in it
  80. proc randstring {count} {
  81.   set rs ""
  82.   for {set j 0} {$j < $count} {incr j} {
  83.      set x [rand 62]
  84.      append rs [string range "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" $x $x]
  85.   }
  86.  
  87.   unset x
  88.   unset j
  89.   return $rs
  90. }
  91.  
  92. # send text to all dcc users
  93. proc putdccall {msg} {
  94.    foreach j [dcclist] {
  95.       putdcc [lindex $j 0] $msg
  96.    }
  97. }
  98.  
  99. # send text to all dcc users but idx
  100. proc putdccbut {idx msg} {
  101.    foreach j [dcclist] {
  102.       if {[lindex $j 0] != $idx} {
  103.          putdcc [lindex $j 0] $msg
  104.       }
  105.    }
  106. }
  107.  
  108. # kill all dcc users
  109. proc killdccall {} {
  110.    foreach j [dcclist] {
  111.       killdcc [lindex $j 0]
  112.    }
  113. }
  114.  
  115. # kill dcc users but idx
  116. proc killdccbut {idx} {
  117.    foreach j [dcclist] {
  118.       if {[lindex $j 0] != $idx} {
  119.          killdcc [lindex $j 0]
  120.       }
  121.    }
  122. }
  123.  
  124. # check to see if idx is in dcclist, if it is returns 1
  125. proc valididx {idx} {
  126.    set r 0
  127.    foreach j [dcclist] {
  128.       if {[lindex $j 0] == $idx} {
  129.           set r 1
  130.           break
  131.       }
  132.    }
  133.  
  134.    return $r
  135. }
  136.